2019/08/28

CSV中の楕円体高を一括で標高に置き換えるPythonプログラムを作った

先日「CSV中の楕円体高を標高に置き換えるアプリがあって、便利なのだがWindows用でMacで使えない」という話を聞いて、EllapsoidToElevation というのをPythonで作ってみた。

https://github.com/naokiueda/EllapsoidToElevation

対象となるCSVは
・カンマ区切り、タブ区切り、スペース区切りのいずれか
・1行目か2行目にヘッダがある
・ヘッダに(大文字小文字区別なしで)「latitude/longitude/altitude」または「lat/long(lon,lng)/alt」の文言が含まれたカラムがある

これを指定すると、altitudeのカラムの数値を取ってきて

標高 = 楕円体高 - ジオイド高

の演算をして、標高に置き換えます。




標高やジオイド高について、詳しくはこちらの国土地理院のサイトで解説されています。

ジオイド高のデータは国土地理院のダウンロードサイトで配布されています。ジオイドの計算も同サイトからダウンロードしたドキュメントに記述されている「ジオイド高内挿計算」の式を使っていて、同梱配布されているアプリと誤差1㎜未満で一致しています。

毎回ジオイドデータを読むのが遅かったので、初回にPythonの配列定義を書いて、次回以降それをインポートするようにしました。これで若干処理が早くなります。

MITライセンスです。自由にお使いください。